# Web Server์™€ WAS์˜ ์ฐจ์ด



์›น ์„œ๋ฒ„์™€ was์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ผ๊นŒ? ์„œ๋ฒ„ ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ๊ธฐ์ดˆ์ ์ธ ๊ฐœ๋…์ด๋‹ค.

๋จผ์ €, ์ •์  ํŽ˜์ด์ง€์™€ ๋™์  ํŽ˜์ด์ง€๋ฅผ ์•Œ์•„๋ณด์ž



# Static Pages

๋ฐ”๋€Œ์ง€ ์•Š๋Š” ํŽ˜์ด์ง€

์›น ์„œ๋ฒ„๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ ์ด๋ฆ„์„ ๋ฐ›๊ณ , ๊ฒฝ๋กœ์™€ ์ผ์น˜ํ•˜๋Š” file contents๋ฅผ ๋ฐ˜ํ™˜ํ•จ

ํ•ญ์ƒ ๋™์ผํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•จ

image, html, css, javascript ํŒŒ์ผ๊ณผ ๊ฐ™์ด ์ปดํ“จํ„ฐ์— ์ €์žฅ๋œ ํŒŒ์ผ๋“ค

# Dynamic Pages

์ธ์ž์— ๋”ฐ๋ผ ๋ฐ”๋€Œ๋Š” ํŽ˜์ด์ง€

์ธ์ž์˜ ๋‚ด์šฉ์— ๋งž๊ฒŒ ๋™์ ์ธ contents๋ฅผ ๋ฐ˜ํ™˜ํ•จ

์›น ์„œ๋ฒ„์— ์˜ํ•ด ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฒฐ๊ณผ๋ฌผ์ž„ (Servlet : was ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ)

๊ฐœ๋ฐœ์ž๋Š” Servlet์— doGet() ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•จ



# ์›น ์„œ๋ฒ„์™€ WAS์˜ ์ฐจ์ด



# ์›น ์„œ๋ฒ„

๊ฐœ๋…์— ์žˆ์–ด์„œ ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

ํ•˜๋“œ์›จ์–ด : Web ์„œ๋ฒ„๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ

์†Œํ”„ํŠธ์›จ์–ด : ์›น ๋ธŒ๋ผ์šฐ์ € ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›๊ณ , ์ •์ ์ธ ์ปจํ…์ธ (html, css ๋“ฑ)๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ


# ์›น ์„œ๋ฒ„ ๊ธฐ๋Šฅ

Http ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์„œ๋น„์Šคํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋‹ด๋‹น

์š”์ฒญ์— ๋งž๊ฒŒ ๋‘๊ฐ€์ง€ ๊ธฐ๋Šฅ ์ค‘ ์„ ํƒํ•ด์„œ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.

  • # ์ •์  ์ปจํ…์ธ  ์ œ๊ณต

    WAS๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ž์› ์ œ๊ณต

  • # ๋™์  ์ปจํ…์ธ  ์ œ๊ณต์„ ์œ„ํ•œ ์š”์ฒญ ์ „๋‹ฌ

    ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ WAS์— ๋ณด๋‚ด๊ณ , WAS์—์„œ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌ


์›น ์„œ๋ฒ„ ์ข…๋ฅ˜ : Apache, Nginx, IIS ๋“ฑ


# WAS

Web Application Server์˜ ์•ฝ์ž

DB ์กฐํšŒ ๋ฐ ๋‹ค์–‘ํ•œ ๋กœ์ง ์ฒ˜๋ฆฌ ์š”๊ตฌ์‹œ ๋™์ ์ธ ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„

HTTP๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๋Š” ๋ฏธ๋“ค์›จ์–ด๋‹ค.

WAS๋Š” ์›น ์ปจํ…Œ์ด๋„ˆ ํ˜น์€ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ

(์ปจํ…Œ์ด๋„ˆ๋ž€ JSP, Servlet์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด. ์ฆ‰, WAS๋Š” JSP, Servlet ๊ตฌ๋™ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด์คŒ)


# ์—ญํ• 

WAS = ์›น ์„œ๋ฒ„ + ์›น ์ปจํ…Œ์ด๋„ˆ

์›น ์„œ๋ฒ„์˜ ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌ์กฐ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• 

๋ณด์•ˆ, ์Šค๋ ˆ๋“œ ์ฒ˜๋ฆฌ, ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ๋“ฑ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋จ ( ์ฃผ๋กœ DB ์„œ๋ฒ„์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ )


# WAS ์ฃผ์š” ๊ธฐ๋Šฅ

1.ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ํ™˜๊ฒฝ ๋ฐ DB ์ ‘์† ๊ธฐ๋Šฅ ์ œ๊ณต

2.์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ

3.์—…๋ฌด ์ฒ˜๋ฆฌํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ˆ˜ํ–‰


WAS ์ข…๋ฅ˜ : Tomcat, JBoss ๋“ฑ



# ๊ทธ๋Ÿผ, ๋‘˜์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์ด์œ ๋Š”?


# ์›น ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

์›น ์„œ๋ฒ„์—์„œ๋Š” ์ •์  ์ปจํ…์ธ ๋งŒ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๊ธฐ๋Šฅ ๋ถ„๋ฐฐ๋ฅผ ํ•ด์„œ ์„œ๋ฒ„ ๋ถ€๋‹ด์„ ์ค„์ด๋Š” ๊ฒƒ

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด๋ฏธ์ง€ ํŒŒ์ผ(์ •์  ์ปจํ…์ธ )๋ฅผ ๋ณด๋‚ผ ๋•Œ..

์›น ๋ฌธ์„œ(html ๋ฌธ์„œ)๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ด์งˆ ๋•Œ 
์ด๋ฏธ์ง€ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ •์  ํŒŒ์ผ์€ ํ•จ๊ป˜ ๋ณด๋‚ด์ง€์ง€ ์•Š์Œ

๋จผ์ € html ๋ฌธ์„œ๋ฅผ ๋ฐ›๊ณ , ์ด์— ํ•„์š”ํ•œ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋“ค์„ 
๋‹ค์‹œ ์„œ๋ฒ„๋กœ ์š”์ฒญํ•ด์„œ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ

๋”ฐ๋ผ์„œ ์›น ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด์„œ ์ •์ ์ธ ํŒŒ์ผ์„ 
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๊นŒ์ง€ ๊ฐ€์ง€ ์•Š๊ณ  ์•ž๋‹จ์— ๋น ๋ฅด๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ!

# WAS๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

WAS๋ฅผ ํ†ตํ•ด ์š”์ฒญ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ DB์—์„œ ๊ฐ€์ ธ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋งž๊ฒŒ ๊ทธ๋•Œ๋งˆ๋‹ค ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค๊ณ  ์ œ๊ณตํ•˜๋ฉด์„œ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

๋™์ ์ธ ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ• ๋•Œ..

์›น ์„œ๋ฒ„๋งŒ์œผ๋กœ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ 
๋ชจ๋‘ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†“๊ณ  ์„œ๋น„์Šคํ•˜๊ธฐ์—๋Š” ์ž์›์ด ์ ˆ๋Œ€์ ์œผ๋กœ ๋ถ€์กฑํ•จ

๋”ฐ๋ผ์„œ WAS๋ฅผ ํ†ตํ•ด ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค 
DB์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํ†ตํ•ด ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์–ด ์ œ๊ณต!

# ๊ทธ๋Ÿฌ๋ฉด WAS๋กœ ์›น ์„œ๋ฒ„ ์—ญํ• ๊นŒ์ง€ ๋‹ค ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€์š”?

WAS๋Š” DB ์กฐํšŒ, ๋‹ค์–‘ํ•œ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•ด์•ผ ํ•จ. 
๋”ฐ๋ผ์„œ ๋‹จ์ˆœํ•œ ์ •์  ์ปจํ…์ธ ๋Š” ์›น ์„œ๋ฒ„์—๊ฒŒ ๋งก๊ธฐ๋ฉฐ ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌ์‹œ์ผœ ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ

๋งŒ์•ฝ WAS๊ฐ€ ์ •์  ์ปจํ…์ธ  ์š”์ฒญ๊นŒ์ง€ ์ฒ˜๋ฆฌํ•˜๋ฉด, 
๋ถ€ํ•˜๊ฐ€ ์ปค์ง€๊ณ  ๋™์  ์ปจํ…์ธ  ์ฒ˜๋ฆฌ๊ฐ€ ์ง€์—ฐ๋˜๋ฉด์„œ ์ˆ˜ํ–‰ ์†๋„๊ฐ€ ๋Š๋ ค์ง 
โ†’ ํŽ˜์ด์ง€ ๋…ธ์ถœ ์‹œ๊ฐ„ ๋Š˜์–ด๋‚˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ

๋˜ํ•œ, ์—ฌ๋Ÿฌ ๋Œ€์˜ WAS๋ฅผ ์—ฐ๊ฒฐ์ง€์–ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์›น ์„œ๋ฒ„๋ฅผ ์•ž ๋‹จ์— ๋‘๊ณ , WAS์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ด์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ง‰์•„๋‘” ๋’ค ์žฌ์‹œ์ž‘ํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ (์‚ฌ์šฉ์ž๋Š” ์˜ค๋ฅ˜๋ฅผ ๋Š๋ผ์ง€ ๋ชปํ•˜๊ณ  ์ด์šฉ ๊ฐ€๋Šฅ)


์ž์› ์ด์šฉ์˜ ํšจ์œจ์„ฑ ๋ฐ ์žฅ์•  ๊ทน๋ณต, ๋ฐฐํฌ ๋ฐ ์œ ์ง€ ๋ณด์ˆ˜์˜ ํŽธ์˜์„ฑ ๋•Œ๋ฌธ์— ์›น ์„œ๋ฒ„์™€ WAS๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.


# ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•

์›น ์„œ๋ฒ„๋ฅผ WAS ์•ž์— ๋‘๊ณ , ํ•„์š”ํ•œ WAS๋“ค์„ ์›น ์„œ๋ฒ„์— ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜•ํƒœ๋กœ ์„ค์ •ํ•˜๋ฉด ํšจ์œจ์ ์ธ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•จ



ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋จผ์ € ์›น ์„œ๋ฒ„๊ฐ€ ๋ฐ›์€ ๋‹ค์Œ, WAS์—๊ฒŒ ๋ณด๋‚ด ๊ด€๋ จ๋œ Servlet์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆผ

WAS๋Š” web.xml์„ ์ฐธ์กฐํ•ด ํ•ด๋‹น Servlet์— ๋Œ€ํ•œ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑ (์Šค๋ ˆ๋“œ ํ’€ ์ด์šฉ)

์ด๋•Œ HttpServletRequest์™€ HttpServletResponse ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด Servlet์—๊ฒŒ ์ „๋‹ฌ

์Šค๋ ˆ๋“œ๋Š” Servlet์˜ service() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ

service() ๋ฉ”์†Œ๋“œ๋Š” ์š”์ฒญ์— ๋งž๊ฒŒ doGet()์ด๋‚˜ doPost() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ

doGet()์ด๋‚˜ doPost() ๋ฉ”์†Œ๋“œ๋Š” ์ธ์ž์— ๋งž๊ฒŒ ์ƒ์„ฑ๋œ ์ ์ ˆํ•œ ๋™์  ํŽ˜์ด์ง€๋ฅผ Response ๊ฐ์ฒด์— ๋‹ด์•„ WAS์— ์ „๋‹ฌ

WAS๋Š” Response ๊ฐ์ฒด๋ฅผ HttpResponse ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ” ์›น ์„œ๋ฒ„๋กœ ์ „๋‹ฌ

์ƒ์„ฑ๋œ ์Šค๋ ˆ๋“œ ์ข…๋ฃŒํ•˜๊ณ , HttpServletRequest์™€ HttpServletResponse ๊ฐ์ฒด ์ œ๊ฑฐ



# [์ฐธ๊ณ ์ž๋ฃŒ]

์ตœ์ข… ์ˆ˜์ • : 12/17/2022, 7:23:59 AM